#include <stdio.h>
// 不定参数的宏
// __VA_ARGS__代表多余的参数（每个参数之间使用逗号分隔）
#define ARG(...) __VA_ARGS__

// __VA_ARGS__前面加上一个#号，可以让输出变成一个字符串。
#define STR_ARG(...) #__VA_ARGS__

void main(void)
{

    // ARG(1, 2, 3) // 被替换成 1, 2, 3
    printf("%d,%d,%d\n", ARG(1, 2, 3));
    // STR_ARG(1, 2, 3) // 被替换成 "1, 2, 3"
    printf("%s\n", STR_ARG(1, 2, 3));
}